package com.blog.common.util.pic;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartFile;


import lombok.extern.slf4j.Slf4j;

/**
 * 
 * @author:彬
 * @time:2018年8月15日 下午3:01:09
 * 描述:  图片上传的工具类     
 */
@Slf4j
public class PicUtils {

	//斜杠
	public static final String FILE_SPARATOR = File.separator;

	public static Map<String,Object> Pic(MultipartFile file,HttpServletRequest request)
	{
		Map<String,Object> map=new HashMap<>();
		//1.判断上传的文件是否为空
		if(file==null)
		{
			log.info("########  图片上传为空  ######## 时间："+new Date());
			map.put("state", false);
			map.put("msg", "图片上传为空");
			return map;
		}
		String path=null;// 文件路径
		String type=null;// 文件类型
		String fileName=file.getOriginalFilename();// 文件原名称
		type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
		// 判断文件类型是否为空
		if(type==null)
		{
			log.info("########  文件类型不能为空  ######## 时间："+new Date());
			map.put("state", false);
			map.put("msg", "文件类型不能为空");
			return map;
		}
		if(file.getSize()>(500 * 1024 * 2))
		{
			log.info("########  上传失败:文件大小不能超过1M  ######## 时间："+new Date());
			map.put("state", false);
			map.put("msg", "上传失败:文件大小不能超过1M ");
			return map;
		}

		if ("JPG".equals(type.toUpperCase()) || "GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase())) {

			// 项目在容器中实际发布运行的根路径     TODO 这里 你随便换个地址 就可以 
			String realPath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/pic/";  
			//String realPath=request.getSession().getServletContext().getRealPath("pic/");
			// 自定义的文件名称
			String trueFileName=String.valueOf(System.currentTimeMillis())+"-"+fileName;
			// 设置存放图片文件的路径
			path=realPath+trueFileName;
			// 转存文件到指定的路径
			try {
				
				file.transferTo(new File(path));
				map.put("state", true);
				map.put("msg", "图片上传成功");
				map.put("picName", trueFileName);
				return map;

			} catch (Exception e) {
				log.info("########  图片上传异常  ######## 时间："+new Date());
				map.put("state", false);
				map.put("msg", "图片上传异常");
				return map;
			}
		}
	
			log.info("########  文件类型不能错误  ######## 时间："+new Date());
			map.put("state", false);
			map.put("msg", "文件类型不能错误");
			return map;
	
	}

	public static void main(String[] args) {
		// "GIF".equals(type.toUpperCase())|| "PNG".equals(type.toUpperCase())||
		String type="jpg1";
		if ("JPG".equals(type.toUpperCase()) || "GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase())) {
			System.out.println("ok");
		}else{
			System.out.println("sb");
		}


	}

}
